package com.itheima.reggie.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;

@Data
public class Employee implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    private String username;

    private String name;

    private String password;

    private String phone;

    private String sex;

    private String idNumber;//驼峰命名法  ---> 映射的字段名为 id_number

    private Integer status;

    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /*
    * 字段填充策略: FieldFill
    *  DEFAULT 默认不处理
    * INSERT 插入填充字段
    * UPDATE 更新填充字段
    * INSERT_UPDATE 插入和更新填充字段
    *
    *
    * 实体类中有如下属性，通过上面的自动填充属性，
    * 我们可以实现在进行插入（insert）操作时对添加了注解@TableField(fill = FieldFill.INSERT)的字段进行自动填充
    * （解释：后面会写配置自动填充的配置类，该配置类的作用用于配置自动填充的值）。
    *
    * 对添加了注解@TableField(fill = FieldFill.INSERT_UPDATE)的字段在进行插入（insert）和更新（update）时进行自动填充。
    * （解释：后面会写配置自动填充的配置类，该配置类的作用用于配置自动填充的值）。
    * */
    @TableField(fill = FieldFill.INSERT)//Enum  字段填充策略
    private Long createUser;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;

}
